﻿using System;
using System.Collections.Generic;
using System.Text;
using Core.Domain;

namespace Core.SyntaxAnalysis.Classes
{
    public abstract class Stmt
    {
        public bool SemanticCheck(ref List<CompilerError> errors)
        {
            return StmtSemanticCheck(ref errors);
        }

        public virtual bool StmtSemanticCheck(ref List<CompilerError> errors)
        {
            throw new Exception("Никогда не должен вызываться для базового класса");
        }

        public void Generate(StringBuilder s)
        {
            StmtGenerate(s);
        }

        public virtual void StmtGenerate(StringBuilder s)
        {
            throw new Exception("Никогда не должен вызываться для базового класса");
        }
    }
}